package com.net.library.interfaces;

import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.*;

import java.util.Map;

/**
 * Created by 吴昶 on 2018/8/15.
 * 仅作参考使用
 */
public interface ConnectionService {

    @GET("api/getlist.php") //数据的地址路径
    Call<ResponseBody> getBlog();//非 Gson 用法

    @GET("api/getlist.php")
    Call<RequestBody> getBlogGson();//无参

    @GET("api/getlist.php")
    Call<RequestBody> getBlogGson(@Query("country") String country);//参数较少时可用

    @GET("api/getlist.php")
    Call<RequestBody> getBlogGson(@QueryMap Map<String, String> map);//参数较多时可用

    @GET("api/getlist.php/{id}/list")
    Call<RequestBody> getBlogGson(@Part("id") int id);//替换链接中的字段

    @GET("api/getlist.php/{id}/list")
    Call<RequestBody> getBlogGson(@Part("id") int id, @Query("a") String a);//替换链接中的字段,并传入参数

    //添加请求头部 多种表示方法
    @GET("api/getlist.php")
    Call<RequestBody> getBlogHeader1(@Header("set") String set);

    @Headers("set:xxx-xx-xx")
    @GET("api/getlist.php")
    Call<RequestBody> getBlogHeader2();

    @Headers({
            "set:yyyyyyyyyyyyyy",
            "fg:ppppppppppppppp"
    })
    @GET("api/getlist.php")
    Call<RequestBody> getBlogHeader3();

    @POST("api/ff")
    Call<RequestBody> postFile(@PartMap Map<String, RequestBody> map);



    @Multipart
    @POST("api/ff")
    Call<RequestBody> postFile(@Header("sid") String sid, @Part MultipartBody.Part file);

    @POST("api/ff")
    Call<RequestBody> postFile(@PartMap Map<String, String> map, @PartMap MultipartBody.Part file);
}
